Utilizing Betweenness to Determine Forwarding State in a Routed Network

ABSTRACT

A set of critical nodes or links is identified on the network through which most of the shortest paths on the network occur. Each node compares their distance to end points on the network with a distance between the end points and each of the distinct critical nodes. Where the distance between the end points and the critical nodes is shorter than the distance between the end points and the node, the node is not on the shortest path and does not install forwarding state. Where the distance between the end points and the critical node is larger than or equal to the distance between the end points and the node, the node may be on the shortest path between the pair of end nodes and installs forwarding state. Installation of forwarding state may cause packet duplication, but determining forwarding state is dramatically simplified.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.13/250,034, filed Sep. 30, 2011, which is a continuation of U.S. patentapplication Ser. No. 12/490,187, filed Jun. 23, 2009, now U.S. Pat. No.8,040,906, the content of each of which is hereby incorporated herein byreference.

TECHNICAL FIELD

The present invention relates to communication networks, and, moreparticularly, to a method and apparatus for using betweenness todetermine forwarding state in a routed network.

BACKGROUND

Data communication networks may include various computers, servers,nodes, routers, switches, bridges, hubs, proxies, and other networkdevices coupled to and configured to pass data to one another. Thesedevices will be referred to herein as “network elements.” Data iscommunicated through the data communication network by passing protocoldata units, such as Internet Protocol packets, Ethernet Frames, datacells, segments, or other logical associations of bits/bytes of data,between the network elements by utilizing one or more communicationlinks between the network elements. A particular protocol data unit maybe handled by multiple network elements and cross multiple communicationlinks as it travels between its source and its destination over thenetwork.

The various network elements on the communication network communicatewith each other using predefined sets of rules, referred to herein asprotocols. Different protocols are used to govern different aspects ofthe communication, such as how signals should be formed for transmissionbetween network elements, various aspects of what the protocol dataunits should look like, how protocol data units should be handled orrouted through the network by the network elements, and how informationsuch as routing information should be exchanged between the networkelements. Ethernet is one such well known networking protocol that hasbeen defined by the Institute of Electrical and Electronics Engineers(IEEE) as standards 802.1 and 802.3.

A routing protocol such as Intermediate System to Intermediate System(IS-IS) may be run on an Ethernet network as described in applicationSer. No. 11/537,775, filed Oct. 2, 2006, entitled “Provider Link StateBridging,” the content of which is hereby incorporated herein byreference. In a link state protocol controlled Ethernet network, ratherthan utilizing a learned network view at each node by using the SpanningTree Protocol (STP) algorithm combined with transparent bridging, thebridges forming the mesh network exchange link state advertisements toenable each node to have a synchronized view of the network topology.This is achieved via the well understood mechanism of a link staterouting system. The bridges in the network have a synchronized view ofthe network topology, have knowledge of the requisite unicast andmulticast connectivity, can compute shortest path connectivity betweenany pair of bridges in the network, and individually can populate theirforwarding databases (FDBs) according to the computed view of thenetwork. When all nodes have computed their role in the synchronizedview and populated their FDBs, the network will have a loop-freepoint-to-multipoint (p2mp) multicast tree from any given bridge to thesame set of peer bridges.

Calculating a full set of multicast trees for each node on the routedEthernet mesh network is a computationally intensive process.Additionally, storing the set of multicast trees requires significantmemory resources. These same considerations may exist in other types ofrouted networks as well, such as in an Internet Protocol (IP) basednetwork. Accordingly, it would be advantageous to provide another way ofenabling multicast forwarding state to be determined to enableimplementation of multicast on a routed network.

SUMMARY

A set of critical nodes or links is identified on the network throughwhich most of the shortest paths on the network occur. Nodes comparetheir distance to end points on the network with a distance between theend points and each of the critical nodes. Each node determines whetherit is on a shortest path between the different pairs of nodes in thenetwork by comparing the distance of the shortest-path through itselffor each selected pair, with the distance of the shortest-path thatconnects the same node-pair and traverses one or more of the criticalnodes, the latter path being called a “critical shortest path”. Wherethe distance of the shortest path through itself is strictly less thanor equal to the distance of the shortest of the critical shortest paths(shortest critical shortest path), the node installs forwarding statefor the selected node pair, because it may be on a shortest-path. Wherethe distance of the shortest path through itself exceeds the distance ofat least one of the critical shortest paths, the node does not installforwarding state for the selected node pair. The installation offorwarding state through this process may cause some packet duplication,but it requires dramatically less computations than the all-pairsshortest-path algorithm. The level of duplication may be minimized byselecting an adequate set of critical nodes in the network, requiringthe critical nodes to calculate the real shortest path prior toinstalling forwarding state, or by enabling duplicate forwarding stateto be pruned where duplication occurs.

BRIEF DESCRIPTION OF THE DRAWINGS

Aspects of the present invention are pointed out with particularity inthe appended claims. The present invention is illustrated by way ofexample in the following drawings in which like references indicatesimilar elements. The following drawings disclose various embodiments ofthe present invention for purposes of illustration only and are notintended to limit the scope of the invention. For purposes of clarity,not every component may be labeled in every figure. In the figures:

FIG. 1 is a functional block diagrams of a reference communicationnetwork showing an example selection of critical components;

FIG. 2 is a flow diagram of a method of pre-computing alternateforwarding state according to an embodiment of the invention;

FIG. 3 is a flow diagram of a method of using pre-computed alternateforwarding state according to an embodiment of the invention;

FIG. 4 is a functional block diagram of an example node that may be usedto pre-compute alternate forwarding state in a routed network accordingto an embodiment of the invention; and

FIG. 5 is a process that may be implemented by a node on a routednetwork to selectively install multicast forwarding state.

DETAILED DESCRIPTION

FIG. 1 shows a reference routed network including a plurality of nodesnumbered 1-27 interconnected by links 30. In the network of FIG. 1, itwill be assumed that the nodes are running a link state routingprotocol. Example link state routing protocols include IntermediateSystem to Intermediate System (IS-IS) and Open Shortest Path First(OSPF), although other link state routing protocols may be used as well.

In a routed network, nodes on the network may advertise interest in amulticast in a link state advertisement. The link state advertisementwill be flooded on the network in a normal manner. When nodes on thenetwork receive the link state advertisement, each node will determinewhether it is on a shortest path between the multicast source and a nodeadvertising interest in the multicast. If the node is on the shortestpath, it will install forwarding state for the multicast.

Installing forwarding state in this manner requires each node to computeand store a full set of shortest path trees—one shortest path treerooted at each node. This type of calculation is not onlycomputationally intensive, but requires significant storage space.Accordingly, a new way of determining whether forwarding state should beinstalled is desirable to reduce the amount of computation required byeach node, and to reduce the amount of memory required to be allocatedto storing shortest path trees on the network.

According to an embodiment of the invention, a set of critical nodes isfirst determined on the network. For example, in FIG. 1, the set ofcritical nodes includes nodes 17, 23, 24, 25, 26, and 27. The manner inwhich the critical nodes are selected is described in greater detailbelow. Once the set of critical nodes has been determined, each nodewill use the critical nodes to determine whether to install forwardingstate. Specifically, the node will determine the distance between themulticast source and the node advertising interest in the multicast forpaths that pass through itself and for each of the critical nodes. Apath that passes through a critical node is referred to herein as acritical shortest path. If the path that passes through itself isshorter than or equal to the shortest critical shortest path, it ispossible that the node is on the shortest path and will installforwarding state for the multicast. If not, then the path that passesthrough the critical node is shorter. Accordingly, the node is not onthe shortest path and will not install forwarding state for themulticast.

Nodes on the network can use any desirable cost metric, such as linkcost, capacity, availability, reliability, etc. Likewise, link weightingmay be directional if desired, and may have dependence on traffic flowdirectionality. Many different ways of calculating shortest paths on thenetwork have been developed and the betweenness calculation processdescribed herein may be used regardless of the method of calculationshortest paths on the network.

For example, in FIG. 1 assume that node 8 wanted to subscribe to amulticast from source 14. Node 8 will generate a link stateadvertisement indicating the membership in the multicast which will beflooded to all nodes on the network. When node 4 (for example,) receivesthe advertisement, it will need to know whether it should installforwarding state for the advertisement. Node 4 can calculate itsshortest path to the source (node 14) as well as its shortest path tothe advertising node (node 8). Node 4 can add those together todetermine the cost of a path from the source to the destination thatpasses through it. Node 4, then calculate the shortest critical shortestpath between the source node and the advertising node (node 8). If node4 determines that the cost of the shortest critical shortest path issmaller than the cost of the shortest path through it, it does not needto install forwarding state in connection with the advertisement fromnode 8.

Thus, rather than having each node perform a calculation to determine ifit is on the shortest path, each node looks to determine whether thereis a shorter path through the network. If a node determines that thereis a shorter path, then it is clear that the node is not on the shortestpath. In one embodiment to reduce the amount of calculation associatedwith determining whether there is a shorter path, a group of criticalnodes is selected and each node will compare its shortest path with thepaths that pass through the critical nodes. If the path from the sourceto the destination through one of the critical nodes is shorter, thenode will not install forwarding state for the multicast.

Continuing with this example, assume that node 8 advertised interest inthe multicast and that nodes 10 and 21 are both looking to determinewhether to install forwarding state for the multicast. It is possiblethat both nodes 10 and 21 will determine that they are on a shorter paththan any of the critical nodes. Hence, both nodes may install forwardingstate for the multicast. This may cause duplication such that multiplecopies of the same multicast packet may be delivered to the end node.The amount of duplication will depend on the set of critical nodesselected on the network. A larger set of critical nodes will reduceduplication on the network by increasing the likelihood of finding ashorter critical shortest path between source/destination for aparticular advertisement. However, a larger number of critical nodeswill also require each node to compare its path length with the paththrough a larger number of critical nodes. Hence, increasing the numberof critical nodes increases the computational complexity.

Looking once again at FIG. 1, assume that node 8 issues a link stateadvertisement indicating membership in the multicast associated withsource 14. When node 20 receives this link state advertisement, it willcompute its shortest distance to the source node which, in this example,will be assumed to be a route that passes through nodes 23, 27, and 26.Node 20 will also compute its shortest path to advertising node 8 whichis direct.

Node 20 will then compare the shortest path between source 14 andadvertising node 8 via each of the critical nodes. In this example, itwill be assumed that the path that passes through node 26 will also bevia nodes 23 and 27, and that the shortest path through critical node 26passes through node 20. In this example, the shortest path via node 26is the same cost as the shortest path that passes through node 20, sincethe two paths are congruent on the network. Hence, node 20 calculatesthat its shortest path between the source and destination has a costthat is equal to the shortest critical shortest path, and thus node 20should install forwarding state for the multicast.

By configuring the intermediate nodes to install forwarding state ifthey are on an equally short path through the network as a shortestcritical shortest path, the nodes are assured to install forwardingstate where their calculated shortest path also happens to pass througha critical node.

FIG. 1 shows an example set of critical nodes that has been selected onthe reference network. Note, that the set of critical nodes is alwaysless than the total number of nodes on the network, and preferably issignificantly less than the total number of nodes on the network. Asnoted above, the larger the set of critical nodes, the more processingeach node will need to implement to determine whether there is a shorterpath via one of the critical nodes—larger numbers of critical nodesmeans more paths through the network to be compared against the paththrough the intermediate node. However, a larger number of criticalnodes will decrease the likelihood of having duplicate forwarding stateinstalled for a particular multicast via multiple paths through thenetwork.

There may be many different ways of determining a set of critical nodeson the network, since the overall goal of selecting nodes as criticalnodes is to select a set of nodes that generally provide shorter pathsthrough the network between a majority of the source/destinationcombinations. For example, the critical nodes may be administrativelydetermined and signaled on the network. Alternatively, the criticalnodes may be determined by determining which nodes on the network handlea majority of the shortest paths between pairs of nodes on the network.This may be done by calculating shortest paths between all of the edgenodes and looking to determine which nodes handle the largest numbers ofthese shortest paths. Other ways of determining nodes that handle alarge proportion of traffic on the network may be determined as well.For example, node capability and link capacity and their respectivecosts may also be considered in the selection process.

In one embodiment, a set of critical nodes is identified based on thenumber of shorts-paths that go through them across all node pairs. Aselection criterion may be that a fraction exceeding a set ratio ofnode-pairs must have a shortest-path going through a node for it to becritical. There are many ways of determining the critical nodes on thenetwork.

Once the set of critical nodes has been determined, each node on thenetwork will calculate and store a shortest path distance between eachcritical node and each other node on the network. This reduces theamount of shortest path trees the node must compute and store from thetotal number of nodes on the network to only the critical nodes on thenetwork. Thus, for example, if there are 100 nodes on the network and 10nodes have been deemed to be critical nodes, each node on the networkwill only be required to calculate and store shortest paths from each ofthe critical nodes to each of the other nodes rather than calculatingand storing shortest path trees from each of the 100 nodes on thenetwork. In this example, this would reduce the processing and storagerequirements approximately by a factor of ten.

Each node will also calculate the shortest distance from it to eachother node on the network. When a node receives a link stateadvertisement containing multicast membership information, it will needto determine whether it should install forwarding state for themulticast, so that multicast packets may be forwarded to the advertisingnode. For example, in FIG. 1, if node 14 is the multicast source, andnodes 11 and 5 advertise interest in the multicast to be included in themulticast, the other nodes on the network will need to know whether theyshould install forwarding state for the multicast to forward multicastdata toward the member nodes. Ideally, the nodes should only installforwarding state if they are on the shortest path between the multicastsource and a node advertising interest in the multicast. In FIG. 1, theshortest paths are shown by dark lines. Conventionally this wasaccomplished by having each node calculate a shortest path tree rootedat every other node on the network. The node would then use the trees todetermine whether it was on a shortest path for the multicast. If thenode was on the shortest path it would install forwarding state for themulticast. If not, the node would not install forwarding state for themulticast.

According to an embodiment of the invention, however, rather thanlooking to determine if a node is on a shortest path, the node insteadlooks to see whether any of the critical nodes represent a shorter path.If none of the critical nodes are on a shorter path, then the node willinstall forwarding state for the multicast.

FIG. 2 shows another way of determining whether a node should installforwarding state. Specifically, as noted above, each node on the networkwill calculate a set of shortest path trees from each of the criticalnodes to each other node on the network. The node will also determine ashortest path tree rooted at itself to every other node on the network.Calculation of these trees may be implemented using a well known processsuch as, e.g. Dijkstra.

In FIG. 2, the multicast source is node A and the node advertisinginterest in the multicast is node D. When an intermediate node (node B)receives a link state advertisement from advertising node D, it will usethe shortest path tree rooted at itself to determine the distancebetween itself and the advertising node (Distance BD), as well as thedistance between itself and the multicast source (Distance AB). Thetotal distance between the multicast source and the advertising nodethat passes through the intermediate node is thus AB+BD.

The intermediate node will also determine the critical shortest path foreach critical node (C_(i)), e.g. by adding the distance between theadvertising node and the critical node (Distance AC_(i)) and thedistance between the critical node and the multicast source (DistanceDC_(i)). The intermediate node will add these values together todetermine the distance, or cost, of the critical shortest path betweenthe multicast source and advertising node that passes through thecritical node C_(i). For simplicity in FIG. 2 only one critical node hasbeen illustrated, and designated as node C. Hence, the distance from themulticast source A to the critical node is Distance AC, and the distancefrom the critical node to the advertising node is Distance CD. The totaldistance of the critical shortest path between the multicast source andthe advertising node that passes through the critical node C is AC+CD.

The intermediate node will then compare the calculated distance betweenthe multicast source and the advertising node on the path that passesthrough it (AB+BD) with each of the paths that go through each of thecritical nodes (AC_(i)+BC_(i)). Since only one critical node has beenshown in FIG. 2, the intermediate node will compare Distance AB+BD withDistance AC+CD.

If the path between the multicast source and the advertising node thatpasses through the intermediate node is longer than any of the criticalshortest paths through any of the critical nodes, then the intermediatenode is not on the shortest path between the multicast source and theadvertising node. Stated differently, if intermediate node finds ashorter path through one of the critical nodes, it is not on theshortest path and should not install forwarding state. Hence, the nodemay safely ignore the link state advertisement and not installforwarding state for the multicast. Stated differently, if AB+BD>AC+CD,then the intermediate node B is not on the shortest path between nodes Aand D, and intermediate node B should not install forwarding state. Thisis true if the path through the intermediate node B is longer than anyone of the critical shortest paths through any one of the critical nodesC. Thus, once intermediate node B finds any at least one criticalshortest path that is shorter than its between the multicast source anddestination, it may stop processing.

Conversely, if the path through the intermediate node is shorter than orequal to the shortest critical shortest path between the multicastsource and the advertising node and which pass through at least one ofthe critical nodes, then the intermediate node is likely to be on theshortest path between the multicast source and the advertising node.Stated differently, if AB+BD≦AC+CD for each critical node C, then B islikely to be on the shortest path between nodes A and D. In thisinstance, intermediate node will install forwarding state for themulticast so that any multicast packet received by the node will bereplicated out a port to be forwarded over the network toward theadvertising node.

Note, in this regard, that intermediate node B is not assured that it ison the shortest path between the multicast source A and the advertisingnode D. Rather, it has calculated that it is likely to be on theshortest path. Thus, it is possible that there will be some duplicationof multicast forwarding state on the network. FIG. 3 shows thisscenario. Specifically, in FIG. 3 assume that the numbers on the linksrepresent the calculated distance between the various nodes. In thisinstance, intermediate node B will calculate the distance betweenmulticast source A and advertising node D that passes through it to beequal to 2 (Distance AB+BD=1+1=2). Intermediate node B will alsocalculate that the distance between the multicast source A andadvertising node D that passes through the critical node C to be 6(Distance AC+CD=3+3=6). Accordingly, intermediate node B will determinethat it should install forwarding state for the multicast.

Similarly, intermediate node B′ will calculate the distance betweenmulticast source A and advertising node D that passes through it to beequal to 4 (Distance AB′+B′D=2+2=4) and will calculate that the distancebetween the multicast source A and advertising node D that passesthrough the critical node C to be 6 (Distance AC+CD=3+3=6). Accordingly,intermediate node B′ will determine that it too should installforwarding state for the multicast. Thus, calculating whether to installforwarding state based on a comparison with paths that pass through thecritical nodes may result in duplication of multicast forwarding stateon the network.

The proportion of multicast traffic that is duplicated may be traded offagainst selection of a larger set of critical nodes. Specifically, asnoted above, the set of critical nodes, in one embodiment, is based on adetermination that the particular set of nodes handles a particularpercentage of shortest paths on the network. For example, a set ofcritical nodes may be determined which collectively are on 90% of theshortest paths through the network. By adjusting the selection ofcritical nodes, the percentage of shortest paths that are included inthe set of critical nodes may be adjusted to thereby adjust the amountof traffic duplication.

Specifically, as the set of critical nodes handles a larger percentageof the shortest paths through the network, it becomes increasinglyunlikely that two nodes will determine that they are both on shorterpaths through the network between the source and advertising node thanthe shortest critical shortest path. Stated differently, as thepercentage of shortest paths handled by the set of critical nodesincreases, the scenario illustrated by FIG. 3 becomes increasinglyuncommon and, hence, the amount of duplication of multicast traffic thatoccurs on the network will be reduced.

However, increasing the number of critical nodes increases the number ofshortest path trees that each intermediate node must calculate andstore. Note, as mentioned above, each intermediate node will calculate ashortest path tree from itself to each other node on the network andwill also calculate a shortest path tree from each of the critical nodesto each of the other nodes on the network. Thus, as the number ofcritical nodes increases, the amount of processing requirements and theconcomitant storage requirements at each of the intermediate nodesincreases. Accordingly, there is a trade-off between computationalcomplexity and packet duplication that may be adjusted by properselection of critical nodes.

Loop avoidance is very important in a multicast context and, accordingto an embodiment of the invention, the nodes implement a loop avoidancefunction to prevent the formation of loops in connection withinstallation of forwarding state. In Provider Link State Bridging(PLSB), loop avoidance may be implemented using Reverse Path ForwardingCheck (RPFC) which ensures that packets arrive at a correct interfacebefore being forwarded on the network. RPFC may also be used to removeduplicate flows of packets from the network to reduce the amount ofduplication occurring on the network.

FIG. 4 shows an example node 12 that may be used to implement anembodiment of the invention. As shown in FIG. 4, the node includes arouting process 60 that exchanges link state protocol messages withother nodes on the network to build a network topology database 62. Therouting process 60 uses the topology maintained in the topology databaseto calculate shortest path trees through the network and calculateforwarding state to be used by the node to forward data on the network.The node will selectively install forwarding state to implement theshortest path trees in its forwarding database 64 which may be used by aforwarding function 66 to selectively forward packets on the multicasttree.

As noted above, loop prevention is very important in a multicast contextand, according to an embodiment of the invention, the node 12 includes aloop avoidance function 68 to implement the loop avoidance processdiscussed herein. The loop avoidance function may implement a RPFCprocess and may also work with the topology database and routing processto ensure transient loops do not form in connection with topologychanges on the network.

The node 12 also implements a betweenness process, described in greaterdetail above in connection with FIGS. 1-3, which enables the node todetermine whether there is a shorter path between the source anddestination that passes through one of the critical nodes. If no suchshorter path exists, the betweenness process determines that the node islikely between the source and destination and can cause the routingprocess 60 to install forwarding state for the multicast in theforwarding database 64. The betweenness process uses the shortest pathtrees calculated by the routing system for the node and for each of thecritical nodes to determine whether the path that flows through the nodeis shorter than the shortest critical shortest path. If so, thebetweenness process will instruct the routing process to installforwarding state for the multicast. Although a separate betweennessprocess has been illustrated as implementing this aspect of theinvention, the invention is not limited in this manner as the routingprocess itself may be adjusted to perform this function as well.

FIG. 5 shows a process that may be implemented by a node on a routednetwork to selectively install multicast forwarding state. As shown inFIG. 5, the nodes on the network will exchange link state advertisementsto learn network topology. The network topology is stored in a networktopology database (100). Each node will then determine a subset ofcritical nodes on the network (102). The nodes may each use theirrouting system to determine which nodes are critical nodes (102A) thenodes may self-select which are to be critical nodes (102B) or a set ofcritical nodes may be administratively determined (102C).

Each node on the network will compute a shortest path tree for eachcritical node to each other node on the network, and will also compute ashortest path tree from it to each other node on the network (104). Whenan intermediate node, node A, receives a link state advertisementcontaining multicast membership information (106), the intermediate nodewill use the pre-calculated shortest path tree rooted at itself todetermine a distance from itself to the multicast source (108) and todetermine a distance to the advertising node (110). The sum of thedistance from the multicast source to the intermediate node and thedistance from the advertising node to the intermediate node will becompared with the cost of paths passing through each of the criticalnodes (112). If the cost of the path passing through the intermediatenode is shorter than or equal to each of the paths passing through thecritical nodes, then the node is likely to be on the shortest pathbetween the source and destination and it should install forwardingstate for the multicast (114). If not, it should not. (116).

Critical nodes will process advertisements the same way as any otherintermediate node. Specifically, when a critical node receives a linkstate advertisement, it will calculate its shortest cost path betweenthe source and destination and will calculate the critical shortestpaths for each of the other critical nodes. If its cost is the same asor less than the shortest critical shortest path through one of theother critical nodes, the critical node will install forwarding statefor the multicast. This will assure that at least one of the criticalnodes installs forwarding state for the multicast so that the criticalnode with the shortest path between the source and destination willalways install forwarding state for the multicast.

If the destination node starts to receive multiple copies of themulticast, the destination node can prune itself from the multicast treeby sending a prune message to the critical node to enable the criticalnode to remove forwarding state. In this way a destination node isguaranteed to be included in the multicast while enabling thepossibility that paths through the network may be pruned at a later timeto reduce duplication of multicast traffic on the network.

As another alternative, the critical node that is determined to be onthe shortest critical shortest path (amongst other critical nodes), maydetermine whether there is a shorter path through the network betweenthe source and destination that does not pass through one of thecritical nodes. If so, the nodes on the shorter path should calculatethat they are on that shorter path and will install forwarding state forthe multicast. Hence, if the critical node on the shortest criticalshortest path (shortest path through one of the critical nodes)determines that there is a shorter path through the network, thecritical node does not need to install forwarding state for themulticast. Conversely, if the critical node does not find a shorterpath, then it knows that it is on a shortest path and will installforwarding state for the multicast. This also enables the critical nodesto minimize duplication of traffic, since the critical nodes in thisembodiment will not install duplicate forwarding state where theycompute that there is another shortest path through the network. In thisembodiment, the critical nodes perform a standard shortest pathcalculation to determine whether to install forwarding state, while theother non-critical nodes on the network may perform the simplifiedbetweenness calculation described herein without performing a fullshortest path calculation and, hence, without computing and storing afull set of shortest path trees from each source to each destination.

Although an embodiment has been described in which nodes determinedwhether to install multicast forwarding state by performing betweennesscalculations, the same process may also be used to install unicastforwarding state.

The functions described above may be implemented as a set of programinstructions that are stored in a computer readable memory and executedon one or more processors on the computer platform. However, it will beapparent to a skilled artisan that all logic described herein can beembodied using discrete components, integrated circuitry such as anApplication Specific Integrated Circuit (ASIC), programmable logic usedin conjunction with a programmable logic device such as a FieldProgrammable Gate Array (FPGA) or microprocessor, a state machine, orany other device including any combination thereof. Programmable logiccan be fixed temporarily or permanently in a tangible medium such as aread-only memory chip, a computer memory, a disk, or other storagemedium. All such embodiments are intended to fall within the scope ofthe present invention.

It should be understood that various changes and modifications of theembodiments shown in the drawings and described in the specification maybe made within the spirit and scope of the present invention.Accordingly, it is intended that all matter contained in the abovedescription and shown in the accompanying drawings be interpreted in anillustrative and not in a limiting sense. The invention is limited onlyas defined in the following claims and the equivalents thereto.

What is claimed is: 1-24. (canceled)
 25. A method of limiting multicastforwarding state at a node of a routed network, the method comprising:receiving, by the node, a link state advertisement containing anindication that a multicast destination would like to join a multicast;determining respective costs of a shortest path from the node to amulticast source and of a shortest path from the node to the multicastdestination; determining respective costs of a shortest path from atleast one other node to the multicast source and of a shortest path fromthe at least one other node to the multicast destination; and notinstalling forwarding state for forwarding multicast traffic from themulticast source to the multicast destination, by the node, when the sumof the cost of the shortest path from the node to the multicast sourceand the cost of the shortest path from the node to the multicastdestination is greater than the sum of the cost of the shortest pathfrom the at least one other node to the multicast source and the cost ofthe shortest path from the at least one other node to the multicastdestination.
 26. The method of claim 25, wherein the at least one othernode is neither the multicast source nor the multicast destination. 27.The method of claim 25, wherein the respective costs of the shortestpath from the at least one other node to the multicast source and of theshortest path from the at least one other node to the multicastdestination are strictly positive.
 28. The method of claim 25,comprising: pre-computing a shortest path tree from the node to eachother node on the network; and using the pre-computed shortest path treeto determine the cost of the shortest path from the node to themulticast source and the cost of the shortest path from the node to themulticast destination.
 29. The method of claim 25, comprising:pre-computing a respective shortest path tree from the at least oneother node to each other node on the network; and using the pre-computedshortest path tree to determine the cost of the shortest path from theat least one other node to the multicast source and the cost of theshortest path from the at least one other node to the multicastdestination.
 30. The method of claim 25, wherein the at least one othernode is selected administratively and advertised on the network.
 31. Themethod of claim 25, wherein the at least one other node is self-selectedby the node.
 32. The method of claim 25, wherein the at least one nodeis selected from a predetermined set of nodes, the predetermined set notincluding some nodes of the routed network.
 33. The method of claim 32,wherein the predetermined set of nodes is selected such that a majorityof shortest paths between nodes in the routed network include nodes thatare in the predetermined set of nodes.
 34. The method of claim 25,wherein the shortest paths are determined based on a cost metricselected from cost, capacity, availability, and reliability.
 35. A nodefor a routed network, the node being adapted to limit multicastforwarding state, the node comprising: at least one processor; and atleast one storage element storing instructions for execution by the atleast one processor, the instructions comprising instructions executableby the at least one processor: to receive, at the node, a link stateadvertisement containing an indication that a multicast destinationwould like to join a multicast; to determine respective costs of ashortest path from the node to a multicast source and of a shortest pathfrom the node to the multicast destination; to determine respectivecosts of a shortest path from at least one other node to the multicastsource and of a shortest path from the at least one other node to themulticast destination; and to not install forwarding state forforwarding multicast traffic from the multicast source to the multicastdestination, by the node, when the sum of the cost of the shortest pathfrom the node to the multicast source and the cost of the shortest pathfrom the node to the multicast destination is greater than the sum ofthe cost of the shortest path from the at least one other node to themulticast source and the cost of the shortest path from the at least oneother node to the multicast destination.
 36. The node of claim 35,wherein the at least one other node is neither the multicast source northe multicast destination.
 37. The node of claim 35, wherein therespective costs of the shortest path from the at least one other nodeto the multicast source and of the shortest path from the at least oneother node to the multicast destination are strictly positive.
 38. Thenode of claim 35, wherein the instructions comprise: instructionsexecutable to pre-compute a shortest path tree from the node to eachother node on the network; and instructions executable to use thepre-computed shortest path tree to determine the cost of the shortestpath from the node to the multicast source and the cost of the shortestpath from the node to the multicast destination.
 39. The node of claim35, wherein the instructions comprise: instructions executable topre-compute a respective shortest path tree from the at least one othernode to each other node on the network; and instructions executable touse the pre-computed shortest path tree to determine the cost of theshortest path from the at least one other node to the multicast sourceand the cost of the shortest path from the at least one other node tothe multicast destination.
 40. The node of claim 35, wherein theinstructions comprise instructions executable to receive anadvertisement identifying the at least one other node when the at leastone other node is selected administratively and advertised on thenetwork.
 41. The node of claim 35, wherein the instructions compriseinstructions executable to cause the node to self-select the at leastone other node.
 42. The node of claim 35, wherein instructions compriseinstructions executable to determine the shortest paths are determinedbased on a cost metric selected from cost, capacity, availability, andreliability.